package br.com.projeco.biblioteca.persistencia;

import br.com.projeco.biblioteca.persistencia.mensagens.ConsultarObjetoRequest;
import br.com.projeco.biblioteca.persistencia.mensagens.ConsultarObjetoResponse;
import br.com.projeco.biblioteca.persistencia.mensagens.ReceberObjetoRequest;
import br.com.projeco.biblioteca.persistencia.mensagens.ReceberObjetoResponse;
import br.com.projeco.biblioteca.persistencia.mensagens.RemoverObjetoRequest;
import br.com.projeco.biblioteca.persistencia.mensagens.RemoverObjetoResponse;
import br.com.projeco.biblioteca.persistencia.mensagens.SalvarObjetoRequest;
import br.com.projeco.biblioteca.persistencia.mensagens.SalvarObjetoResponse;

/**
 * 
 * @author Lucas
 * Interface para implementação pelas rotinas de persistência em banco.
 */
public interface IEntidadeDbLib<T> {

	ConsultarObjetoResponse<T> consultarObjeto(ConsultarObjetoRequest<T> parametros);
	
	ReceberObjetoResponse<T> receberObjeto(ReceberObjetoRequest<T> parametros);
	
	SalvarObjetoResponse<T> salvarObjeto(SalvarObjetoRequest<T> parametros);
	
	RemoverObjetoResponse<T> removerObjeto(RemoverObjetoRequest<T> parametros);
	
}
